// 一种数据类型
// 参数
// 返回值
// 函数
// 一般情况下，把函数作为参数的目的就是为了获取函数内部的异步操作结果
// javascript 单线程、事件循环

// function add(x, y) {
// 	return x + y
// }

// add(10, 20)


// console.log(1)

// // 异步，不会等待
// setTimeout(function () {
// 	console.log(2)
// 	console.log('hello')
// },0)

// console.log(3)
// 结果 1 3 2 hello

function add(x, y, callback) {
	// callback 就是回调函数
	// var x = 10
	// var y = 20
	// var callback = function (ret) { console.log(ret) }
	console.log(1)
	setTimeout(function () {
		var ret = x + y
		callback(ret)
	},1000)
}

add(10, 20, function (ret) {
	console.log(ret)
})


// 注意：凡是需要得到一个函数内部异步操作的结果
// 		setTimeout
// 		readFile
// 		writeFile
// 		ajax
// 		这种情况必须通过：回调函数